1. Field of the Invention
The present invention relates to storage systems. Specifically, the invention relates to apparatus, methods, and systems for speculatively mirroring data to a target volume.
2. Description of the Related Art
In this information age, computing devices are often used to process and store vast quantities of data. Businesses and individuals alike increasingly rely on computers to store important personal and business information. As reliance upon machine readable data increases, businesses and individuals are more vulnerable to damage caused by data loss. Consequently, reliability and efficiency of data backup systems have never been more important.
Data backup systems typically create a backup copy of source data associated with a computing device. Source data may include files, storage volumes, data within memory devices, data within storage devices, or the like. If the source data associated with a computing device is corrupted or lost, a data backup system can be used to replace the corrupted or lost source data with a backup copy. The degree of similarity, and thus reliability, between the backup copy and the source data may vary, however, depending on how often the backup copy is updated to match the source data. If the backup copy is updated in step with the source data, the backup copy is said to be a “mirror” of the source data and is therefore “consistent” with the source data.
In one form of data mirroring, data is written to two more storage volumes in parallel. As a result, one or more redundant copies of the data is always available in case one of the volumes fails. In remote data mirroring systems, data is written to the source volume at one location and to the one or more target volumes at remote locations. Often, a transmission link facilitates data transmission between a source storage controller connected to the source volume and target storage controllers connected to the target volumes.
FIG. 1 is a block diagram illustrating a typical prior art remote data mirroring system 100. The depicted prior art data mirroring system 100 includes a host 110, a file system 112, a source storage controller 114a, a target server 120, a file system 122, a target storage controller 114b, one or more source volumes 130a and target volumes 130b, and a transmission link 150.
The host 110 may request data from, or send data to, the source storage controller 114a via the file system 112. The file system 112 translates operating system calls to storage related commands recognized by the source storage controller 114a. Similarly, the target server 120 may request data from, or send data to, the target storage controller 114b via the file system 122, which translates operating system calls to storage related commands recognized by the target storage controller 114b. 
In response to the reception of the storage related commands, either from the operating system or directly from an application or utility, the source storage controller 114a translates the storage related commands into storage operations on the source volumes 130a. Likewise, the target storage controller 114b translates storage related commands into storage operations on the target volumes 130b. Examples of storage operations include read operations, write operations, copy operations, and the like.
During data mirroring, the host 110 sends write data to the source volumes 130a via the file system 112 and the source storage controller 114a. The source storage controller 114a conducts corresponding write operations on the source volumes 130a while also sending a copy of the data to the target storage controller 114b via the transmission link 150. In response, the target storage controller 114b writes the copied data to the target storage volumes 130b. Thus, the target volumes 130b may contain a relatively up-to-date copy of the source volumes 130a and “mirror” the source volumes 130a in a substantially continuous manner.
The bandwidth available to the transmission link 150 is often much less than the bandwidth between the source storage controller 114a and the source volumes 130a. Furthermore, synchronous mirroring operations often require the source storage controller 114a to wait for completion of the mirrored operation on the target volume before proceeding to a subsequent operation. Consequently, storage operations conducted by the source storage controller 114a may be reduced to a rate matching the transmission rate of the transmission link 150. Data throughput in the remote data mirroring system 100 is thus constrained by the relatively low bandwidth of the transmission link 150, resulting in inefficient system performance.
One technique used to improve data throughput is known as asynchronous replication. In this technique, a buffer is used to hold data that has not yet been sent across the transmission link 150 to a target storage controller 114b. Data corresponding to read and write operations on the source volumes 130a are stored in the buffer and are sent to the target storage controller 114b as soon as the transmission link 150 will allow. Thus, the source storage controller 114a can read and write to the source volumes 130a at close to full speed, independent of the transmission rate of the transmission link 150. While useful for some operations, asynchronous replication does not work for every operation. Some operations such as locking operations have required synchronization for proper completion.
Locking operations lock a region of a storage volume, effectively preventing all but certain read and write operations from accessing the locked region. Locking operations ensure orderly access to memory that may be updated by multiple processes. In certain embodiments, locking operations include read locks and/or write locks wherein write locks permit only read operations by another process, while read locks permit neither read nor write operations by another process.
To initiate locking operations, the source storage controller 114a sends a lock request to the target storage controller 114b. When the target storage controller 114b has granted the lock, the target storage controller 114b responds by sending a confirmation message to the source storage controller 114a. The confirmation message informs the source storage controller 114a that the target storage controller 114b is ready to receive additional read and write operations.
In the aforementioned scenario, the target controller 114b cannot grant a lock on a requested region until the target storage controller 114b is finished reading or writing to the requested region. In addition, the source storage controller 114a must wait for the confirmation message before sending read and write data. Consequently, the delays associated with heretofore synchronous operations, such as lock operations, significantly reduce the efficiency, reliability, and performance of the remote data mirroring system 100.
Accordingly, what is needed is a data mirroring system that overcomes transmission latencies and other delays associated with heretofore synchronous operations, such as locking operations. In particular, what is needed are apparatus, methods, and systems for conducting locking operations on remote storage volumes in an asynchronous manner.